home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga CD-ROM Collection
/
Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso
/
auge4000
/
57
/
zkick
/
zkick.doc
< prev
next >
Wrap
Text File
|
1991-08-01
|
6KB
|
185 lines
ZKick V2.23a -- Copyright (C) 1990 by Daniel Zenchelsky
Modified in 1991 by Marco Lusini
This program may be freely copied, as long as all copyright
notices are left intact and unchanged.
-----------------------------------------------------------------------------
Overview
--------
ZKick is a KickStart 2.0 kickfile loader, similar to KickIt by
Bryce Nesbitt, but with several advantages. First of all, ZKick will work
in ANY Amiga with a ram board at $200000, no matter which slot it's in.
Second, when ZKick loads KickStart, it survives a reboot! When you hit
CTRL-AMIGA-AMIGA, you are placed back in KickStart 2.0. This feature can
be disabled with the "-die" option.
NOTE: ZKick is only useful for developers who have an Amiga 500/2000
kickfile from Commodore. It will NOT work with a 3000 KickStart file.
Theory of operation
-------------------
ZKick works by building a table of expansion devices under
KickStart 1.3 (1.2), adding a ROMTag to the resident list, patching
ColdCapture and CoolCapture, loading KickStart 2.0 into memory at $200000
and reseting the machine. When 1.3 starts up, the ColdCapture routine
skips the >512k chip ram test normally done by exec. Normally exec clears
all of chip ram if it finds more than 512k of it. Then, the CoolCapture
routine patches exec to keep it from stomping on the first few bytes of
memory at $200000. Expansion library (still under 1.3) then configures all
of the AutoConfig devices. Next, our ROMTag is executed, which detects
that it is still under 1.3 and jumps to the start of KickStart 2.0.
Now we're running under KickStart 2.0. Expansion library is the
first thing executed, but it doesn't find any expansion devices because
they were all configured by the 1.3 expansion library. Then the ROMTag is
again executed. It adds all of the expansion devices previously configured
by 1.3 expansion library to the 2.0 expansion library's ConfigDev list, and
all of the memory boards to exec's memory list. From here on the normal
startup is taken, during which each board is initialized.
Requirements
------------
1) Total memory must be 1.5M or greater.
2) There must be a 512k or greater ram board at location $200000.
Usage
-----
ZKick [options] kickfile
Options
-------
The -debug option will let you see all kinds of debugging information.
The -print option will cause ZKick to dump more debugging information
to the printer.
The -die option is used to tell ZKick not to survive reboots, so that
when the machine is reset, the KickStart ROM will be run instead.
The -mmu option will cause ZKick to reset the MMU, if it exists.
*NOTE* This is different than the previous versions.
The -noreset option causes ZKick to skip the initial RESET and just
jump into KickStart. This option is useful with some GVP boards which do
not pass the RESET signal properly.
The -nochecksum option will keep ZKick from going to 1.3 if the
KickStart checksum is not valid.
(Using the options -noreset and -nochecksum together will make ZKick behave
as it did in version 2.01)
KillZKick
---------
Also included is the program KillZKick. KillZKick removes ZKick
from memory, and reboots the system with the KickStart ROM.
Troubleshooting
---------------
If you can't get ZKick to work, make sure you're using a 500/2000
version of KickStart, version 36.141 (Release 2.0) or higher. Try the
following things before contacting me:
1) Try using "ZKick -noreset Kickfile"
If this fails, set up your printer correctly and use the command
"ZKick -debug -print Kickfile." Mail me a copy of the output along with a
COMPLETE description of your hardware configuration, and hopefully I'll be
able to determine the problem.
Reaching me
-----------
I can be reached on Bix as dzenc, on the internet as
dzenc@gnu.ai.mit.edu, or on bitnet as dzenc%gnu.ai.mit.edu@mitvma.bitnet.
Special thanks to
-----------------
Dan Babcock for sending me an excellent article that he wrote which
showed how to set up RomTag modules correctly, as well as his many ideas
for bug fixes and improvements.
Dave Haynie, for the MMU code which I pilfered from SetCPU.
And my beta testers:
Martin Allred
Joanne Dow
Frank Edwards
Valentin Pepelea
Erik Quackenbush (even though his flakey hardware caused most of
the problems :-)
Mike Thomas
Apologies to anyone I missed.
History
-------
ZKick 2.23a installs its ROMTag in a polite way, keeping all other
Tags installed. The Cool routine clears CoolCapture in ExecBase to support
version 37.059. Now KillZKick removes only ZKick ROMTag and clears only
the CoolCapture entry in ExecBase.
ZKick 2.23 adds support for delayed GURUs. Normally, exec pokes a
"HELP" into location 0, stores the GURU info at $0100, and restarts the
machine. When exec is restarted, it checks location zero for "HELP,"
stores the GURU info in ExecBase, and clears location 0. Later, exec pops
up an alert. The problem is that ZKick starts KickStart 2.0 before exec
gets a chance to display the alert. ZKick now checks for a delayed GURU
and pokes "HELP" back into location 0 before starting KickStart 2.0.
ZKick 2.22 changes the default behavior to NOT reseting the mmu, as
many people said that they couldn't get it to work on 020/030 machines
unless this option was off.
ZKick 2.21 adds the "-print" option.
ZKick 2.20 adds many new command line options.
ZKick 2.10b fixes a problem which caused ZKick to configure each
device twice.
ZKick 2.10a fixes a typo in Zkick 2.10, which caused it not to
recognize an MMU ('=' instead of '==').
ZKick 2.10 employs better error checking. In addition, if an MMU
exists, it clears it before starting 2.0.
ZKick 2.01 fixes a bug which caused ZKick not to work with most
autoboot controllers.
ZKick 2.0 is the first "public" release.
-Dan
-----------------------
P.S. This is my first attempt at assembler programming on the 68000.
I hope you enjoy the results!!!
P.P.S. I'm a college sophomore looking for some part time programming
work.